#include <crt_util.h>

#if (TARGET_OS == OS_WIN)

#define WSAERRNO     WSAGetLastError()
#define ERRNO        GetLastError()
#define SET_ERRNO(x) SetLastError(x)

#elif (TARGET_OS == OS_POSIX)

#define WSAERRNO     (errno)
#define ERRNO        (errno)
#define SET_ERRNO(x) (errno = (x))

#elif (TARGET_OS == OS_MACH)

#define WSAERRNO     (errno)
#define ERRNO        (errno)
#define SET_ERRNO(x) (errno = (x))

#elif (TARGET_OS == OS_UNIX)

#define WSAERRNO     (errno)
#define ERRNO        (errno)
#define SET_ERRNO(x) (errno = (x))

#endif

void crt_setfatalerror(const crterr errorno)
{
    SET_ERRNO(errorno);
}

crterr crt_geterror(void)
{
    int error;
    error = ERRNO;
    // crt_setfatalerror(error);
    return error;
}
